<?php
/**
 * @brief Klasa encyjna Network
 * 
 * Obiekty tej klasy reprezentują sieć dystrybucji towarów.
 * 
 */
class Application_Model_Network
{
    protected $_Network_id;  /*!< Identyfikator sieci. */
    protected $_name;  /*!< Nazwa sieci. */
    protected $_description;  /*!< Opic sieci. */

    /**
     * @brief Konstruktor 
     * 
     * Przyjmuje tablicę znaków i na jej podstawie uzupełnia pola,
     * przy pomocy setOptions.
     * @param array $options 
     */
    public function __construct(array $options = null) {
        if (is_array($options)) {
            $this->setOptions($options);
        }
    }

    /**
     * @brief Metoda uzupełniająca pola na podstawie wejściowej tablicy.
     * 
     * @param array $options
     * @return Obiekt tej klasy.
     */
    public function setOptions(array $options) {

        $methods = get_class_methods($this);

        foreach ($options as $key => $value) {

            $method = 'set' . ucfirst($key);

            if (in_array($method, $methods)) {

                $this->$method($value);
            }
        }
        return $this;
    }
    /**
     * @brief Metoda zwracająca identyfikator sieci.
     *
     * @return int 
     */
    public function getNetwork_id() {
        return $this->_Network_id;
    }
    /**
     * @brief Metoda ustawiająca identyfikator sieci.
     *
     * @param int $_Network_id 
     */
    public function setNetwork_id($_Network_id) {
        $this->_Network_id = $_Network_id;
    }
    /**
     * @brief Metoda zwracająca nazwę sieci.
     *
     * @return string 
     */
    public function getName() {
        return $this->_name;
    }
    /**
     * @brief Metoda ustawiająca nazwę sieci.
     *
     * @param string  $_name 
     */
    public function setName($_name) {
        $this->_name = $_name;
    }
    /**
     * @brief Metoda zwracająca opis sieci.
     *
     * @return string 
     */
    public function getDescription() {
        return $this->_description;
    }
    /**
     * @brief Metoda ustawiająca opis sieci.
     *
     * @param string  $_description 
     */
    public function setDescription($_description) {
        $this->_description = $_description;
    }



}

